package com.carpedil.shirodemo.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carpedil.shirodemo.system.model.Role;

import java.util.List;

/**
 * 服务类
 *
 * @author carpedil
 * @since 2021-01-05
 */
public interface IRoleService extends IService<Role> {
  /**
   * 分页获取所有觉得列表
   *
   * @param page 当前页码
   * @param limit 每页显示数量
   * @param roleQuery 查询条件
   * @return 分页的角色集合
   */
  Page<Role> selectAllByQuery(Integer page, Integer limit, Role roleQuery);

  /**
   * 根据角色id查询该角色拥有的所有menu id
   *
   * @param roleId 角色id
   * @return 该角色拥有的所有menu id 的数组
   */
  Integer[] getMenusByRoleId(Integer roleId);

  List<Role> selectAll();

  Integer[] getOperatorsByRoleId(Integer roleId);

  void grantOperator(Integer roleId, Integer[] operatorIds);

  void grantMenu(Integer roleId, Integer[] menuIds);

  void deleteRoleById(Integer id);
}
